import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { loadEnv } from "vite";
import legacy from "@vitejs/plugin-legacy"
import { resolve } from 'path'

export default ({ mode }) => {
  const env = loadEnv(mode, process.cwd());
  return defineConfig({
    base: 'http://169.254.99.183:28080/tr-cloud-core-gen',
    plugins: [
      vue({
        script: {
          defineModel: true
        }
      }),
      legacy({ targets: ['chrome 72'] })
    ],
    build: {
      sourcemap: false
    },
    server: {
      host: '0.0.0.0',
      port: 10060,
      // cors: true,
      headers: {
        'Access-Control-Allow-Origin': '*', // 主应用获取子应用时跨域响应头
      },
      proxy: {
        '/api': { //apiTest是自行设置的请求前缀，按照这个来匹配请求，有这个字段的请求，就会进到代理来
          // target: env.VITE_BASE_API_URL, // 需要代理的域名
          target: 'http://169.254.99.183:28080/tr-cloud-core-gen',
          changeOrigin: true, // 是否跨域
          rewrite: (path) => {
            //重写匹配的字段，如果不需要放在请求路径上，可以重写为""
            return path.replace('/api', '')
          }
        }
        // '/file': { //apiTest是自行设置的请求前缀，按照这个来匹配请求，有这个字段的请求，就会进到代理来
        //   target: env.VITE_BASE_FILE_API_URL, // 需要代理的域名
        //   changeOrigin: true, // 是否跨域
        //   rewrite: (path) => {
        //     //重写匹配的字段，如果不需要放在请求路径上，可以重写为""
        //     return path.replace('/file', '')
        //   }
        // }
      }
    },
    // css: {
    //   postcss: {
    //     plugins: [
    //       postCssPxToRem({
    //         // 自适应，px>rem转换
    //         rootValue: 192,
    //         propList: ['*'], // 需要转换的属性，这里选择全部都进行转换
    //         selectorBlackList: ['norem'], // 过滤掉norem-开头的class，不进行rem转换，这个内容可以不写
    //       }),
    //     ],
    //   },
    // },
    resolve: {
      // alias: [
      //   {
      //     find: '@',
      //     replacement: fileURLToPath(new URL('./src', import.meta.url))
      //   },
      //   {
      //     find: '@static',
      //     replacement: fileURLToPath(new URL('./public/static', import.meta.url))
      //   }
      // ],
      alias: {
        '@': resolve(__dirname, 'src'),
        '@static': resolve(__dirname, 'public/static')
      }
    }
  })
}